Return of multiple results in rule generation

ABSTRACT

Various embodiments relate to a Policy Charging and Rules Node (PCRN) and a related method and machine-readable medium for retrieving multiple results in response to a message. The PCRN may receive a message and, through handling the received message, may make a policy decision. The policy decision may require the PCRN to retrieve multiple related results. The PCRN may thereafter refer to a data arrangement that includes a rule set with at least one rule with multiple values. Based on the policy decision, the PCRN may retrieve the at least one rule. The PCRN may compile the rule from the rule set and may generate an answer message including at least one of these values included in the rule.

TECHNICAL FIELD

Various exemplary embodiments disclosed herein relate generally topolicy and charging in telecommunications networks.

BACKGROUND

As demand increases for varying types of applications within mobiletelecommunications networks, service providers constantly upgrade theirsystems in order to reliably provide an expanded functionality. What wasonce a system designed simply for voice communication has grown into anall-purpose network access point, providing access to a myriad ofapplications including text messaging, multimedia streaming, and generalInternet access. In order to support such applications, providers havebuilt new networks on top of their existing voice networks. As seen insecond and third generation networks, voice services must be carriedover dedicated voice channels and directed toward a circuit-switchedcore, while other service communications are transmitted according tothe Internet protocol (IP) and directed toward a different,packet-switched core. This led to unique problems regarding applicationprovision, metering and charging, and quality of experience (QoE)assurance.

In an effort to simplify the dual core approach of the second and thirdgenerations, the 3rd Generation Partnership Project (3GPP) hasrecommended a new network scheme it terms “long term evolution” (LTE).In an LTE network, all communications are carried over an IP channelfrom user equipment (UE) to an all-IP core called the evolved packetcore (EPC). The EPC then provides gateway access to other networks whileensuring an acceptable QoE and charging a subscriber for theirparticular network activity.

The 3GPP generally describes the components of the EPC and theirinteractions with each other in a number of technical specifications.Specifically, 3GPP TS 29.212, 3GPP TS 29.213, and 3GPP TS 29.214describe the policy and charging rules function (PCRF), policy andcharging enforcement function (PCEF), and bearer binding and eventreporting function (BBERF) of the EPC. These specifications furtherprovide some guidance as to how these elements interact in order toprovide reliable data services and charge subscribers for use thereof.

For example, the 3GPP discloses some guidance on the establishment of anapplication session by the EPC upon receipt of an application requestfrom an application function (AF) in the form of an AA-request (AAR)message or from a packet data network gateway (PGW) in the form of acredit control request (CCR) message. The 3GPP states that the PCRF isresponsible for receiving requests, establishing IP-CAN and gatewaycontrol sessions, creating or modifying new policy and charging control(PCC) rules commensurate with such requests, and providing these new ormodified PCC rules to the PCEF for installation. The 3GPP suggests aformat for various messages and PCC rules. The 3GPP does not, however,describe how the PCRF should interpret a request, establish sessions, orcreate and subsequently lookup PCC rules. Such functionality isgenerally desired for the operation of the EPC.

In view of the foregoing, it would be desirable to influence theresponse of the PCRF to requests based on local configuration andrules-driven operation policy. In particular, it would be desirable toprovide a customizable process by which a PCRF may retrieve a result andtake appropriate action in response.

SUMMARY

In light of the present need for a device and method to return resultsretrieved by the PCRF, a brief summary of various exemplary embodimentsis presented. Some simplifications and omissions may be made in thefollowing summary, which is intended to highlight and introduce someaspects of the various exemplary embodiments, but not to limit the scopeof the invention. Detailed descriptions of a preferred exemplaryembodiment adequate to allow those of ordinary skill in the art to makeand use the inventive concepts will follow in the later sections.

Various embodiments may relate to a method of a Policy and ChargingRules Node (PCRN) creating a PCC rule. The method may include receivinga message from a requesting device, wherein the request message includesan information set. The method may also include determining that apolicy decision should be made, based on the information set in therequest message and obtaining a rule set based on the information set,wherein the rule set includes at least one rule, the at least one ruleincluding at least two values. The method may also comprise determiningthat the at least one rule is applicable to the information set andgenerating an answer message, wherein at least one value of the at leasttwo values is included in the answer message.

Various embodiments may also relate to a Policy and Charging Rules Node(PCRN) for creating a PCC rule. The PCRN may comprise a rule storagethat stores a plurality of rule sets comprising at least one rule,wherein the at least one rule includes at least two values. The PCRN mayalso comprise a message handler that receives a message including aninformation set from a requesting device. The PCRN may also comprise arule matching engine that obtains a rule set based on the informationset and determines that the at least one rule is applicable to theinformation set. The PCRN may also comprise a result interpreter thatgenerates an answer message, wherein at least one value of the at leasttwo values is included in the answer message.

Various embodiments may also relate to machine-readable instructions fora Policy and Charging Rules Node (PCRN) creating a PCC rule. Themachine-readable medium may include instructions for receiving a messagefrom a requesting device, wherein the request message includes aninformation set. The medium may also include instructions fordetermining that a policy decision should be made, based on theinformation set in the request message and obtaining a rule set based onthe information set, wherein the rule set includes at least one rule,the at least one rule including at least two values. The medium may alsocomprise instructions for determining that the at least one rule isapplicable to the information set and generating an answer message,wherein at least one value of the at least two values is included in theanswer message.

It should be apparent that, in this manner, various exemplaryembodiments enable a Policy and Charging Rules Node to lookup andretrieve multiple rule results. Particularly, by enabling the PCRN toretrieve multiple action values from a single lookup, the PCRN mayreduce the number of required lookups when performing specific actions.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to better understand various exemplary embodiments, referenceis made to the accompanying drawings wherein:

FIG. 1 illustrates an exemplary subscriber network for providing variousdata services;

FIG. 2 illustrates an exemplary policy and charging rules node (PCRN)for generating and installing PCC rules;

FIG. 3 illustrates an exemplary data arrangement for storingsingle-result policy decision rules in the embodiment shown in FIG. 2;

FIG. 4 illustrates an exemplary data arrangement for storing rulesincluding multiple value results;

FIG. 5 illustrates an exemplary method for processing a received messagein the embodiment shown in FIG. 2; and

FIG. 6 illustrates an exemplary method for retrieving multiple resultsin the embodiment shown in FIG. 2.

DETAILED DESCRIPTION

Referring now to the drawings, in which like numerals refer to likecomponents or steps, there are disclosed broad aspects of variousexemplary embodiments.

FIG. 1 illustrates an exemplary subscriber network 100 for providingvarious data services. Exemplary subscriber network 100 may be acommunications network, such as an LTE or 4G mobile communicationsnetwork, for providing access to various services. The network 100 mayinclude user equipment 110, base station 120, evolved packet core (EPC)130, packet data network 140, and application function (AF) 150.

User equipment 110 may be a device that communicates with packet datanetwork 140 for providing the end-user with a data service. Such dataservice may include, for example, voice communication, text messaging,multimedia streaming, and Internet access. More specifically, in variousexemplary embodiments, user equipment 110 is a personal or laptopcomputer, wireless email device, cell phone, television set-top box, orany other device capable of communicating with other devices via EPC130.

Base station 120 may be a device that enables communication between userequipment 110 and EPC 130. For example, base station 120 may be a basetransceiver station such as an evolved nodeB (eNodeB) as defined by 3GPPstandards. Thus, base station 120 may be a device that communicates withuser equipment 110 via a first medium, such as radio waves, andcommunicates with EPC 130 via a second medium, such as Ethernet cable.Base station 120 may be in direct communication with EPC 130 or maycommunicate via a number of intermediate nodes (not shown). In variousembodiments, multiple base stations (not shown) may be present toprovide mobility to user equipment 110. Note that in various alternativeembodiments, user equipment 110 may communicate directly with EPC 130.In such embodiments, base station 120 may not be present.

Evolved packet core (EPC) 130 may be a device or network of devices thatprovides user equipment 110 with gateway access to packet data network140. EPC 130 may further charge a subscriber for use of provided dataservices and ensure that particular quality of experience (QoE)standards are met. Thus, EPC 130 may be implemented, at least in part,according to the 3GPP TS 29.212, 29.213, and 29.214 standards.Accordingly, EPC 130 may include a serving gateway (SGW) 132, a packetdata network gateway (PGW) 134, a policy and charging rules node (PCRN)136, and a subscription profile repository (SPR) 138.

Serving gateway (SGW) 132 may be a device that provides gateway accessto the EPC 130 to an end user of network 100. SGW 132 may be the firstdevice within the EPC 130 that receives packets sent by user equipment110. SGW 132 may forward such packets toward PGW 134. SGW 132 mayperform a number of functions such as, for example, managing mobility ofuser equipment 110 between multiple base stations (not shown) andenforcing particular quality of service (QoS) characteristics for eachflow being served. In various implementations, such as thoseimplementing the proxy mobile IP standard (PMIP), SGW 132 may include abearer binding and event reporting function (BBERF). In variousexemplary embodiments, EPC 130 may include multiple SGWs (not shown) andeach SGW may communicate with multiple base stations (not shown).

Packet data network gateway (PGW) 134 may be a device that providesgateway access to packet data network 140 to an end user of network 100.PGW 134 may be the final device within the EPC 130 that receives packetssent by user equipment 110 toward packet data network 140 via SGW 132.PGW 134 may include a policy and charging enforcement function (PCEF)that enforces policy and charging control (PCC) rules for each servicedata flow (SDF). Therefore, PGW 134 may be a policy and chargingenforcement node (PCEN). PGW 134 may include a number of additionalfeatures such as, for example, packet filtering, deep packet inspection,and subscriber charging support. PGW 134 may also be responsible forrequesting resource allocation for unknown application services. Uponreceiving a request for an unknown application service from UE 110, PGWmay construct a credit control request (CCR), such as CCR 170,requesting an appropriate allocation of resources and forward therequest to PCRN 136.

It should be noted that while exemplary network 100 corresponds to oneparticular implementation of long term evolution (LTE), many variationsmay exist. For example, SGW 132 may not be present, PGW 134 may not bepresent, and/or the functions of SGW 132 and PGW 134 may be consolidatedinto a single device or spread across multiple additional devices. Inother embodiments, the retrieval of multiple rule results may beperformed in different telecommunications networks, such as, forexample, General Packet Radio Service (GPRS).

Policy and charging rules node (PCRN) 136 may be a device that receivesrequests related to service data flows (SDFs) and IP-CAN sessions,generates PCC rules, and provides PCC rules to the PGW 134 and/or otherPCENs (not shown). PCRN 136 may be in communication with AF 150 via anRx interface. PCRN 136 may receive an application request in the form ofan aa-request (AAR) 160 from AF 150. Upon receipt of AAR 160, PCRN 136may generate at least one new PCC rule for fulfilling the applicationrequest 160.

PCRN 136 may also be in communication with SGW 132 and PGW 134 via a Gxxand a Gx interface, respectively. PCRN 136 may receive a request in theform of a credit control request (CCR) 170 from SGW 132 or PGW 134. Aswith AAR 160, upon receipt of CCR 170, PCRN may take appropriate actionin response, such as, for example, generating at least one new PCC rulefor fulfilling and/or responding to the CCR 170. In various embodiments,AAR 160 and CCR 170 may represent two independent requests to beprocessed separately, while in other embodiments, AAR 160 and CCR 170may carry information regarding a single request, and PCRN 136 may takeaction based on the combination of AAR 160 and CCR 170. In variousembodiments, PCRN 136 may be capable of handling both single-message andpaired-message requests.

Upon creating a new PCC rule or upon request by the PGW 134, PCRN 136may provide a PCC rule to PGW 134 via the Gx interface. In variousembodiments, such as those implementing the PMIP standard for example,PCRN 136 may also generate quality of service (QoS) rules. Upon creatinga new QoS rule or upon request by the SGW 132, PCRN 136 may provide aQoS rule to SGW 132 via the Gxx interface.

In processing various requests, PCRN 136 may make one or more policydecisions. The policy decisions made by PCRN 136 may be in the form ofpolicy decision rules that may include a plurality of rule instances,which may be stored internally. As will be discussed in relation toFIGS. 2-6, upon receipt of a request, PCRN 136 may handle the message bymaking a policy decision and looking up an applicable rule set. Oncefound, PCRN 136 may use at least one of the applicable rule instancesincluded in the rule set to create an answer message that may then beused to, for example, create, modify, or terminate a PCC rule. In someembodiments, PCRN 136 may also use other values in a rule instance tocreate, modify, or terminate other AVPs associated with a rulecriterion.

Subscription profile repository (SPR) 138 may be a device that storesinformation related to subscribers to the subscriber network 100. Thus,SPR 138 may include a machine-readable storage medium such as read-onlymemory (ROM), random-access memory (RAM), magnetic disk storage media,optical storage media, flash-memory devices, and/or similar storagemedia. SPR 138 may be a component of PCRN 136 or may constitute anindependent node within EPC 130. Data stored by SPR 138 may include anidentifier of each subscriber and indications of subscriptioninformation for each subscriber such as subscriber category, bandwidthlimits, charging parameters, and subscriber priority.

Packet data network 140 may be a network (e.g., the Internet or anothernetwork of communications devices) for providing data communicationsbetween user equipment 110 and other devices connected to packet datanetwork 140, such as AF 150. Packet data network 140 may furtherprovide, for example, phone and/or Internet service to various userdevices in communication with packet data network 140.

Application function (AF) 150 may be a device that provides a knownapplication service to user equipment 110. Thus, AF 150 may be a serveror other device that provides, for example, a video streaming or voicecommunication service to user equipment 110. AF 150 may further be incommunication with the PCRN 136 of the EPC 130 via an Rx interface. WhenAF 150 is to begin providing known application service to user equipment110, AF 150 may generate an application request message, such as anauthorization and authentication request (AAR) 160 according to theDiameter protocol, to notify the PCRN 136 that resources should beallocated for the application service. This application request messagemay include information such as an identification of a subscriber usingthe application service and an identification of service data flows thatare desired to be established in order to provide the requested service.AF 150 may communicate such an application request to the PCRN 136 viathe Rx interface.

FIG. 2 illustrates an exemplary policy and charging rules node (PCRN)for generating and installing PCC rules. PCRN 200 may correspond to PCRN136 of exemplary subscriber network 100. PCRN 200 may include a Gxxinterface 205, a Gx interface 210, an Rx interface 215, a messagehandler 220, a context information module 225, a rule matching engine230, and a rule storage 235, a result interpreter 240, and a rulemanager 245.

Gxx interface 205 may be an interface comprising hardware and/orexecutable instructions encoded on a machine-readable storage mediumconfigured to communicate with a SGW such as SGW 132. Such communicationmay be implemented according to the 3GPP TS 29.212. Thus, Gxx interface205 may receive requests for QoS rules and transmit QoS rules forinstallation. Gxx interface 205 may further receive UE-originatedapplication and session requests in the form of a CCR.

Gx interface 210 may be an interface comprising hardware and/orexecutable instructions encoded on a machine-readable storage mediumconfigured to communicate with a PGW such as PGW 134. Such communicationmay be implemented according to the 3GPP TS 29.212. Thus, Gx interface210 may receive requests for PCC rules and transmit PCC rules forinstallation. Gx interface 210 may further receive UE-originatedapplication and session requests in the form of a CCR.

Rx interface 215 may be an interface comprising hardware and/orexecutable instructions encoded on a machine-readable storage mediumconfigured to communicate with an AF such as AF 150. Such communicationmay be implemented according to the 3GPP TS 29.214. For example, Rxinterface 215 may receive application and service requests in the formof an AAR.

Message handler 220 may include hardware and/or executable instructionson a machine-readable storage medium configured to process applicationrequests, session requests, event notifications, and other messagesreceived via Gxx interface 205, GX interface 210, and Rx interface 215.For example, message handler 220 may create and install new PCC rules inresponse to an application request. As a further example, messagehandler 220 may establish, modify, or terminate IP-CAN sessions andgateway control sessions in response to a session request.

After fully processing a incoming message, message handler 220 mayconstruct and transmit a outgoing message over Gxx interface 205, GXinterface 210, and/or Rx interface 215 to notify other nodes as to theresult of processing the incoming message. For example, if messagehandler 220 creates a new PCC rule in response to an incoming message,it may construct an outgoing reauthorization request (RAR) message topush the new PCC rule to an appropriate PGW. In processing variousincoming messages, message handler 220 may request a policy decisionfrom rule matching engine 230 and base at least part of its response onthe results of the policy decision. Message handler 220 may providecontext information from the message to rule matching engine 230, eitherdirectly or via context information module 225.

Context information module 225 may include hardware and/or executableinstructions on a machine-readable storage medium configured to providevarious context information to rule matching engine 230. For example,context information module 225 may store information carried by areceived message. Context information module 225 may further storepreviously received and/or transmitted messages associated with asubscriber, session, and/or service data flow. Context informationmodule 225 may further access information stored elsewhere such as, forexample, subscriber information stored in an SPR such as SPR 138.

Rule matching engine 230 may include hardware and/or executableinstructions on a machine-readable storage medium configured to identifyrules stored in rule storage 235 that are applicable to a receivedmessage. Each rule set may include a criteria section which indicateswhen a rule set is applicable. The rule set may include one or more ruleinstances with a plurality of values that may be applicable to areceived message. In such instances, a matching rule set may return oneor more rule instances after it is determined to be applicable. Rulematching engine 230 may compare this criteria section to contextinformation passed to it by message handler 220 and/or retrieved fromcontext information module 225. Upon locating an applicable rule set,message handler may pass the one or more rule instances as rule resultsto result interpreter 240. In various embodiments, rule matching engine230 may stop attempting to match other rule instances at this point. Insome embodiments, rule matching engine 230 may pass multiple ruleresults to result interpreter simultaneously.

Rule storage 235 may be any machine-readable medium capable of storingpolicy decision rules for use by rule matching engine 230. Accordingly,rule storage 235 may include a machine-readable storage medium such asread-only memory (ROM), random-access memory (RAM), magnetic diskstorage media, optical storage media, flash-memory devices, and/orsimilar storage media. In various alternative embodiments, rule storage235 may be a device that is external to the PCRN 200. Rule storage 235may store definitions of numerous policy decision rules. Suchdefinitions may include, for example, a criteria section and a resultsection.

Result interpreter 240 may include hardware and/or executableinstructions on a machine-readable storage medium configured tointerpret a result section of a rule passed by rule matching engine 230.In some embodiments, the result section of a rule may include multiplevalues from one or more rule results. Result interpreter 240 may compilethe results indicated by the result section of one or more ruleinstances into a policy decision result and subsequently pass the policydecision result to message handler 220.

Rule manager 245 may include hardware and/or executable instructions ona machine-readable storage medium configured to define, modify, andotherwise manage policy decision rules. For example, rule manager 245may receive a definition of a new policy decision rule, format thedefinition according to a standard policy decision rule syntax used byPCRN 200, and store the definition in rule storage 235. Rule manager 260may further provide a definition of an existing policy decision rule toa user upon request. Rule manager 245 may subsequently receive amodified rule definition, format the definition if necessary, and storethe definition in rule storage 235. In storing a modified definition,rule manager 245 may overwrite an existing definition or store themodified definition as a new version of the policy decision rule whilepreserving the old definition. Thus, rule manager 245 may provideversion control functionality.

FIG. 3 illustrates an exemplary data arrangement for storingsingle-result policy decision rules. Data arrangement 300 may comprise aplurality of rule tables 310, 330, 350. In some embodiments, dataarrangement 300 may comprise more or less rule tables. Each rule table310, 330, 350 may comprise a rule definition 301, 302, 303 and one ormore rule instances 320-324, 340-344, 360-364. For example, Mapping QCItable 310 may have a rule definition 301 comprising rule criteria 304and a QCI field 305. Similarly, bandwidth table 330 may have a maximumbandwidth field 307, while charging table 350 may have a rate field 309.Each rule table 310, 330, 350 may also have one or more rule instances320-324, 340-344, 360-364.

In an illustrative embodiment, the PCRN 200 may refer to one or morerule tables 310, 330, 350 to obtain rule results. In some embodiments,the PCRN 200 may base a lookup on a policy decision. In someembodiments, the PCRN 200 may perform a series of successive lookups inorder to obtain rule results from different rule tables. For example,the PCRN 200 may, based on a received message and subsequent policydecision, require results relating to a PCC rule pertaining to its QCI,maximum bandwidth, and charging rate. Based on the policy decision, thePCRN 200 may require that the rule results be associated with the“silver” criterion. PCRN 200 may therefore refer to QCI table 310 andfind rule instance 320, with a QCI value of “5”. PCRN 200 may then storethe value of the rule result. PCRN 200 may then refer to tables 330, 350to locate rule instances 340, 360 that are also associated with the“silver” criterion and store the “256/256” and “$0.10/kb” respectively.PCRN 200 may then use the stored rule results when generating orupdating a PCC rule.

In various embodiments, a particular request may be associated withmultiple values of the same type. For example, different charging ratesmay be used for different service data flows implementing a singlerequest. In such instances, PCRN 200 may include a distinct table foreach value of the multiple values. For example, PCRN 200 may include atable for charging rates applicable to video streams and a table forcharging rates applicable to control streams. A policy decision toretrieve such multiple results of the same may result in a great numberof retrievals, as PCRN 200 may repeatedly refer to multiple tables inorder to construct an answer message that takes all necessary or usefulvalues into account.

FIG. 4 illustrates an exemplary data arrangement 400 for storing rulesincluding multiple value results. Data arrangement 400 may be, forexample, a table in a database stored in rule storage 235 or at anyother element internal or external to PCRN 300. Alternatively, dataarrangement 300 could be a series of linked lists, an array, or asimilar data structure. Thus, it should be apparent that dataarrangement 300 is an abstraction of the underlying data; any datastructure suitable for storage of the underlying data may be used. PCRN200 may utilize data arrangement 400 when generating a policy decisionto determine at least one predefined PCC rule for use in responding to aparticular request.

Data arrangement 400 may include two fields: a subscriber category field401 and a predefined PCC rule field 402. Subscriber category field 401may indicate criteria for determining when a particular rule isapplicable. In the present example, a value for subscriber category maybe used to determine whether a particular rule is applicable. In variousalternative embodiments, other attributes or context information may beused instead of a subscriber category for determining applicability of arule. For example, data arrangement 400 may instead include a fieldstoring an APN value, an identifier for an Application Function, or atime of day. Further, in various alternative embodiments, additionalcriteria may be used in determining whether a rule is applicable. Forexample, data arrangement 400 may include subscriber category field 401and a time of day field (not shown). Alternatively, data arrangement 400may simply include a generic criteria field (not shown) that stores aconditional statement for evaluation in determining whether a particularrule is applicable.

Predefined PCC Rule field 402 may store one or more PCC rule names. Suchrule names may correspond to predefined PCC rules stored at PCRN 200,PGW 134, or elsewhere. Such rule names may be used as part of a resultfrom a policy decision by the PCRN 200 in responding to a requestmessage.

As an example, rule 410 may indicate that it is applicable when asubscriber category is “silver.” Rule 410 may further indicate that,when it is applicable, the PCC rule name “Free-Music” should be returnedas part of a policy decision. The PCRN 200 may then use this value asneeded or useful.

As a further example, rule 411 may indicate that it is applicable when asubscriber category is “gold.” Rule 411 may also indicate that, when itis applicable, both PCC rule names “Free-Sports” and “Free-Music” shouldbe returned. The PCRN 200 may then determine how to use these values. Invarious embodiments, rule 411 may be implemented as a single ruleincluding multiple result values, while in other embodiments, rule 411may in fact be two independent rule instances having similar criteria.

As yet another example, rule 412 may indicate that it is applicable whenthe subscriber category is “platinum,” and that, in such a case, threepredefined PCC rule names should be returned: “Free-Sports,”“Free-Music,” and “Free-PPV.” As with rule 411, rule 412 may be a singlerule with three result values or three independent rule instances. Dataarrangement 400 may include numerous additional rules 413.

It should be noted that data arrangement 400 is only one example of arule table providing multiple results. A similar approach may be takenwith regard to any attribute type that may be returned in a policydecision function. For example, rules may be defined to return multipleevent triggers or charging rates for certain criteria.

FIG. 5 illustrates an exemplary method 500 for processing a receivedmessage. Method 500 may be performed by the components of PCRN 200 suchas, for example, message handler 220.

Method 500 may begin in step 505 and proceed to 510 where PCRN 200 mayreceive a message via Gxx interface 205, Gx interface 210, and/or Rxinterface 215. Method 500 may then proceed to step 520, where PCRN 200may determine whether a policy decision should be made in order toprocess the received message. If a policy decision is necessary, method500 may proceed to step 530. Otherwise, method 500 may proceed to step550.

At step 530, PCRN 200 may invoke a policy decision and await a policydecision result before continuing. In invoking a policy decision,message handler 220 may extract information from the received messageand pass it to context information module 225 or directly to rulematching engine 230. Alternatively, message handler 220 may pass thereceived message in its entirety to context information module 225 ordirectly to rule matching engine 230. Upon receiving a policy decisionresult, method 500 may proceed to step 540.

At step 540, PCRN 200 may process the received policy decision result.Method 500 may then proceed to step 550 where PCRN 200 may finishprocessing the received message in light of any received policy decisionresults. Step 550 may include, for example, creating a new PCC rule,establishing an IP-CAN session, and/or transmitting an acknowledgementmessage to another node. Method 500 may then end in step 555.

FIG. 6 illustrates an exemplary method 600 for retrieving multiple ruleresults. Method 600 may be performed by the components of PCRN 200 suchas, for example, rule matching engine 230 and/or result interpreter 240.Method 600 may correspond to step 530 (FIG. 5) or may be performed inparallel to method 500 after the execution of step 530.

Method 600 may begin in step 605 and proceed to step 610 where PCRN 200may retrieve a first rule set. PCRN 200 may determine the applicablerule set from context information stored in context information module225 or message handler 220 may specify a rule set when invoking a policydecision. After retrieving the first rule set, method 600 may proceed tostep 615.

At step 615, PCRN 200 may compare the criteria portion of the rule setto relevant context information passed by message handler 220 and/orcontext information module 225. If the criterion does not match thecontext information, method 600 may proceed to step 620 where PCRN 200may retrieve the next rule set from rule storage 230. Method 600 maythen loop back to step 615.

If, on the other hand, PCRN 200 determines that the criteria section ofa rule set matches the context information at step 615, method 600 mayproceed to step 630. At step 630, PCRN 200 may retrieve results from theresult section of the matching rule set. For example, PCRN 200 mayretrieve each value from a rule instance and/or each predefined PCC ruleassociated with the matching criterion. At step 640, PCRN 200 may addthe retrieved results to the policy decision result list.

At step 650, PCRN 200 may determine whether another applicable rule setexists. This may occur, for example, if the context informationindicates that the multiple subscriber categories match the contextinformation, or when the context information requires values beyondthose provided in a set of rule instances, such as when the contextinformation requires PCRN 200 to provide a set of predefined PCC rulesand a set of Event-Trigger AVPs. When at step 650, the PCRN 200determines that another rule set may be applicable, the method 600 mayreturn to step 620 and retrieve another rule set; otherwise the method600 may end at step 660.

Having described exemplary components and methods for the operation ofexemplary subscriber network 100 and PCRN 200, an example of theoperation of exemplary network 100 and PCRN 200 will now be providedwith reference to FIGS. 1-6. PCRN 200 may correspond to PCRN 136. Thecontents of rule storage 235 may be indicated by data arrangement 400.

The process may begin when PCRN 136 receives CCR 170 requesting theestablishment of a new service data flow. Message handler 220 mayextract information from the message, including a subscriber ID, andsend the information to context information module 225. PCRN 136 thendetermines that a policy decision must be made and, at step 530, invokesa policy decision specifying that the PCC rule creation rule set shouldbe used.

Rule matching engine then retrieves rule set 410. As the criteriasection uses the Subscriber Category 401 variable, rule matching engine230 may request this information from context information module 225.Context information module 225, in turn, may retrieve the recordassociated with the subscriber ID from SPR 138 and determine thatSubscriber Category 401 is “platinum.” Rule matching engine 230 thendetermines that rule set 410 is not applicable at step 615, as the valueof “silver” for the subscriber category does not match the targetcriterion of “platinum.” Rule matching engine 230 may similarly loopupon retrieval of rule set 411 until it retrieves rule set 412 at step620. As the criteria of rule set 412 specifies that the rule set isapplicable when Subscriber Category 401 is “platinum,” rule matchingengine 230 determines that rule set 412 is applicable and passes therule set to result interpreter 240.

Result interpreter 240 then retrieves the predefined PCC rules for“Free-Sports”, “Free-Music”, and “Free-PPV” as results associated withthe matching subscriber criterion of “platinum” in step 630. Thepredefined PCC rules may then be added into the results list at step640. After determining that no other rule sets are applicable at step650, message handler 220 may include the predefined PCC rules in amessage sent to PGW 134 in steps 540 and 550.

According to the foregoing, various exemplary embodiments provide for aflexible method of processing messages received at a PCRN. Particularly,by enabling the retrieval of multiple messages during a single lookup,the speed of PCRN 200 actions may increase and may be more efficient forspecific tasks that require the retrieval of multiple, related resultsas the number of lookups necessary are reduced. Further, the methodallows for simpler rule creation and management by an operator of thePCRN.

It should be apparent from the foregoing description that variousexemplary embodiments of the invention may be implemented in hardwareand/or firmware. Furthermore, various exemplary embodiments may beimplemented as instructions stored on a machine-readable storage medium,which may be read and executed by at least one processor to perform theoperations described in detail herein. A machine-readable storage mediummay include any mechanism for storing information in a form readable bya machine, such as a personal or laptop computer, a server, or othercomputing device. Thus, a machine-readable storage medium may includeread-only memory (ROM), random-access memory (RAM), magnetic diskstorage media, optical storage media, flash-memory devices, and similarstorage media.

It should be appreciated by those skilled in the art that any blockdiagrams herein represent conceptual views of illustrative circuitryembodying the principals of the invention. Similarly, it will beappreciated that any flow charts, flow diagrams, state transitiondiagrams, pseudo code, and the like represent various processes whichmay be substantially represented in machine readable media and soexecuted by a computer or processor, whether or not such computer orprocessor is explicitly shown.

Although the various exemplary embodiments have been described in detailwith particular reference to certain exemplary aspects thereof, itshould be understood that the invention is capable of other embodimentsand its details are capable of modifications in various obviousrespects. As is readily apparent to those skilled in the art, variationsand modifications can be affected while remaining within the spirit andscope of the invention. Accordingly, the foregoing disclosure,description, and figures are for illustrative purposes only and do notin any way limit the invention, which is defined only by the claims.

1. A method of a Policy and Charging Rules Node (PCRN) creating a PCCrule, the method comprising: receiving, at the PCRN, a request messagefrom a requesting device, the request message including an informationset; determining that a policy decision should be made based on theinformation set in the request message; obtaining a rule set based onthe information set, wherein the rule set includes at least one rule,the at least one rule including at least two values; determining thatthe at least one rule is applicable to the information set; andgenerating an answer message, wherein at least one value of the at leasttwo values is included in the answer message.
 2. The method of claim 1,further comprising: reviewing the information set in the receivedmessage; and generating a target rule criteria based on at least aportion of the information set in the received message.
 3. The method ofclaim 2, wherein the target rule criteria comprises a set of contextinformation.
 4. The method of claim 3, wherein determining that the atleast one rule is applicable further comprises comparing the rule setwith the context information.
 5. The method of claim 2, whereindetermining that the at least one rule is applicable further comprisesmatching a rule criteria of the rule set with the target rule criteria.6. The method of claim 1, further comprising: forwarding the generatedanswer message to at least another device to enable the servicerequested.
 7. The method of claim 1, wherein the rule set comprises atleast two rule, wherein each of the at least two rules of the same type.8. A Policy and Charging Rules Node (PCRN) for creating a PCC rule, thePCRN comprising: a rule storage that stores a plurality of rule setscomprising at least one rule, wherein the at least one rule includes atleast two values; a message handler that receives a request messageincluding an information set from a requesting device; a rule matchingengine that obtains a rule set based on the information set anddetermines that the at least one rule is applicable to the informationset; and a result interpreter that generates an answer message, whereinat least one value of the at least two values is included in the answermessage.
 9. The PCRN of claim 8, wherein the message handler furtherreviews the information set in the received message and generates atarget rule criteria based on at least a portion of the information setin the received message.
 10. The PCRN of claim 9, wherein the targetrule criteria comprises a set of context information.
 11. The PCRN ofclaim 10, wherein the rule matching engine compares the rule set withthe context information.
 12. The PCRN of claim 9, wherein the rulematching engine matches a rule criteria of the rule set with the targetrule criteria.
 13. The PCRN of claim 8, further comprising: a secondinterface to forward the generated answer message to at least anotherdevice to enable the service requested.
 14. The method of claim 8,wherein the rule set comprises at least two rule, wherein each of the atleast two rules of the same type.
 15. A machine-readable medium encodedwith instructions for a Policy and Charging Rules Node (PCRN) creating arule, the machine-readable medium comprising: instructions for receivinga message from a requesting device, the request message including aninformation set; instructions for determining that a policy decisionshould be made based on the information set in the request message;instructions for obtaining a rule set based on the information set,wherein the rule set includes at least one rule, the at least one ruleincluding at least two values; and instructions for determining that theat least one rule is applicable to the information set; and instructionsfor generating an answer message, wherein at least one value of the atleast two values is included in the answer message.
 16. Themachine-readable medium of claim 15, further comprising: instructionsfor reviewing the information set in the received message; andinstructions for generating a target rule criteria based on at least aportion of the information set in the received message.
 17. Themachine-readable medium of claim 16, wherein the target rule criteriacomprises a set of context information.
 18. The machine-readable mediumof claim 17, wherein instructions for determining that the at least onerule is applicable further comprises comparing the rule set with thecontext information.
 19. The machine-readable medium of claim 16,wherein instructions for determining that the at least one rule isapplicable further comprises matching a rule criteria of the rule setwith the target rule criteria.
 20. The machine-readable medium of claim15, further comprising: instructions for forwarding the generated answermessage to at least another device to enable the service requested. 21.The machine-readable medium of claim 16, wherein the rule set comprisesat least two rule, wherein each of the at least two rules of the sametype.